1. Field of the Invention
This invention relates to the field of network applications such as applications on the Internet, in particular to a method and system to allow users to interface to various network services without a strict service directed user interface.
2. Description of the Related Art
The world wide web (WWW), specifically through web applications has allowed for numerous services to be provided. Services include photo sharing web sites, researching databases, accessing public library catalog, and electronic commerce (e-commerce). Web site services continue to evolve to allow greater interaction between users, providers of services and products, and web sites that allow groups to communicate. E-commerce has grown from consumers merely visiting a commercial web-site and ordering goods or services by entering account and or credit card information to interactive communication between consumers and web-sites. Service frameworks provide for interaction between groups in a network or the Internet. Service frameworks allow the Internet to evolve from a collection of web-sites accessed by a personal computer to a network of interconnected services that work together to solve problems, perform tasks, or meet a need. Systems and services will be able to have intelligent communications with or without the need for user intervention. Service frameworks include E-speak™ developed by the Hewlett Packard Corporation and Enterprise Java Beans™ (EJB) developed by Sun Microsystems, Inc.
Service frameworks define a uniform services interface or application programming interfaces (API), and uniform services interaction such as the E-speak™ engine allow services to dynamically interact to discover, negotiate, broker and compose themselves to solve a business to business, or business to consumer service request. Most service interfaces are defined by an extensible mark-up language (XML) scheme or an XML interface.
Application programs (applications) that once controlled various functions and routines were made up of large pervasive sections of code, where one user interface could suffice. Applications are now seen as a collection of individual standalone services that are distributed over a network such as the Internet and combined together by a web application to form a useful end user service. This allows for code reuse, greater flexibility, and ease of maintenance. Individual applications, however, may or may not have proper user interfaces that allow a user to communicate to services.
When separate pieces of software desire to interact with one other, an interface between the pieces of software must be provided. The interface can have many different characteristics. Characteristics can include tightness of coupling; language independence; and communication mechanism. Relatively tightly coupled interfaces require a change whenever a change is made to one of the pieces of software. Language independence relates to the need for the same language to be used for the interface as the language used for the pieces of software. Certain languages provide for independent or different languages for the interface and the pieces of software. Communication mechanism relates to the ability of an interface to allow pieces of software to call one another in the same memory space or communication network.
In typical systems, a service tends to be a collection of software that has interfaces that are loosely coupled, language independent, and Internet-communication capable. A component tends to have a tightly coupled, language dependent interface. A component tends to be part of an application, while a service tends to stand apart from the application.
Ideally, an application provides a user interface that is uniform in graphics, behavior, look, and feel. Because a service is typically reused by many different applications, is not desirable to have a service provide parts of the user interface, since the service can provide a user interface having different graphics, behavior, look, and feel.
Service frameworks typically provide an application programming interface model that does not allow individual services to provide user interfaces to the user, or otherwise directly interact with the user. Problems therefore can arise with the basic need to provide an interface between services and users.
A need has been felt for a method and a system, in particular a service framework that allows services that do not have a user interface (UI) to communicate with a user through an appropriate UI. The service framework should be easy to use, extensible, and allow service developers to provide user interaction to their services.